Telegram Group & Telegram Channel
Сегодня 31 декабря.
Поэтому расскажу кейс о работе 31 декабря много лет назад. Горел флагманский и достаточно сложный и в плане бизнеса и плане инфры (первое внедрение в пром на спарке за историю банка, причем на паре десятков источников и с кучей моделей и модулей) проект.
Всем отделом, вне зависимости от грейда, 31 декабря часов до 11 вечера сидели на работе – все ковыряли данные и пилили модели, причем это ровно тот случай, когда в комнате чувствуешь себя самым тупым. Наш отдел реально знали и уважали ☺️
И вот примерно за что: сидит очень синьорный DS (наверное самый синьорный, которого я встречал вживую) и в реплике источника с ODS (operational data store, а не тот который был слаке) в таблице на 100+ млрд записей нашел 14 😱 записей, которые менялись при перезапуске скрипта сразными параметрами спарка.

Как была устроена реплика: если запись в источнике изменялась / удалялась / добавлялась, то в реплике писалась дата до десятой секунды, и тип операции – ‘I/U/D’. То есть чтобы собрать данные на дату в прошлое (чтобы потом сделать фичи) надо было написать что-то вроде:

select a.*
from
(
select
*
, row_number() over (partition by smth order by ods_dt desc) as rn
from table
where ods_date < our_date
) a
where (a.rn = 1) and (a.ods_type <> ‘D’)

Заменив row_number() на rank() он нашел что у одной и той же записи могут быть изменения, которые совпали с точностью до десятой доли секунды! И вот он ковырял пока не нашел незадокументированное поле ods_seq, которое хранило какой-то локальный номер операции. Добавил в сортировку оконной функции и дождался пересчета всех тестов на этой огромной таблице.
14 записей на 100+ млрд! И для него это был как песок в часах – недопустимое расхождение, которое вызывало зуд и зубовный скрежет.
Другой (начальник отдела, кстати) до победного калибровал свою модель. И мы работали полный день и второго января и третьего и так до самой сдачи проекта (только 8 марта случился следующий выходной).

Не столько из-за дедлайна (его мы просрочили месяцев на 5 в итоге), сколько из-за качества – не то чтобы мы боялись не пройти валидацию, нет, нас увлекал сам процесс сделать модели на совесть.

И вот я искренне желаю вам в Новом Году оказаться в таком коллективе, где люди сильнее вас, умнее вас, и увлечены как минимум не меньше вас; на таком проекте где от вашей работы и внимания к деталям зависит действительно очень много, чтобы у вас была здоровая гордость за свою работу!

Моя мечта чтобы быть DS / MLE было не менее почетно чем врачом 👨‍🔬 или адвокатом 👨‍⚖️, чтобы мы с вами работали не потому что “продакт - бэклог - фича - жира” 🤮, а потому что делаем важное и очень классное дело, и на этих данных в этой области мы действительно первооткрыватели, нас драйвят файндинги и эффект на бизнес, на конечного пользователя. Нас драйвит изящество и скорость алгоритмов, красивые подходы, решенные задачи.

Новых знаний вам! Новых свершений! С наступающим Новым 2025 годом!
🍾🎄🥂🔔☃️🎄🥳
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/datarascals/86
Create:
Last Update:

Сегодня 31 декабря.
Поэтому расскажу кейс о работе 31 декабря много лет назад. Горел флагманский и достаточно сложный и в плане бизнеса и плане инфры (первое внедрение в пром на спарке за историю банка, причем на паре десятков источников и с кучей моделей и модулей) проект.
Всем отделом, вне зависимости от грейда, 31 декабря часов до 11 вечера сидели на работе – все ковыряли данные и пилили модели, причем это ровно тот случай, когда в комнате чувствуешь себя самым тупым. Наш отдел реально знали и уважали ☺️
И вот примерно за что: сидит очень синьорный DS (наверное самый синьорный, которого я встречал вживую) и в реплике источника с ODS (operational data store, а не тот который был слаке) в таблице на 100+ млрд записей нашел 14 😱 записей, которые менялись при перезапуске скрипта сразными параметрами спарка.

Как была устроена реплика: если запись в источнике изменялась / удалялась / добавлялась, то в реплике писалась дата до десятой секунды, и тип операции – ‘I/U/D’. То есть чтобы собрать данные на дату в прошлое (чтобы потом сделать фичи) надо было написать что-то вроде:


select a.*
from
(
select
*
, row_number() over (partition by smth order by ods_dt desc) as rn
from table
where ods_date < our_date
) a
where (a.rn = 1) and (a.ods_type <> ‘D’)

Заменив row_number() на rank() он нашел что у одной и той же записи могут быть изменения, которые совпали с точностью до десятой доли секунды! И вот он ковырял пока не нашел незадокументированное поле ods_seq, которое хранило какой-то локальный номер операции. Добавил в сортировку оконной функции и дождался пересчета всех тестов на этой огромной таблице.
14 записей на 100+ млрд! И для него это был как песок в часах – недопустимое расхождение, которое вызывало зуд и зубовный скрежет.
Другой (начальник отдела, кстати) до победного калибровал свою модель. И мы работали полный день и второго января и третьего и так до самой сдачи проекта (только 8 марта случился следующий выходной).

Не столько из-за дедлайна (его мы просрочили месяцев на 5 в итоге), сколько из-за качества – не то чтобы мы боялись не пройти валидацию, нет, нас увлекал сам процесс сделать модели на совесть.

И вот я искренне желаю вам в Новом Году оказаться в таком коллективе, где люди сильнее вас, умнее вас, и увлечены как минимум не меньше вас; на таком проекте где от вашей работы и внимания к деталям зависит действительно очень много, чтобы у вас была здоровая гордость за свою работу!

Моя мечта чтобы быть DS / MLE было не менее почетно чем врачом 👨‍🔬 или адвокатом 👨‍⚖️, чтобы мы с вами работали не потому что “продакт - бэклог - фича - жира” 🤮, а потому что делаем важное и очень классное дело, и на этих данных в этой области мы действительно первооткрыватели, нас драйвят файндинги и эффект на бизнес, на конечного пользователя. Нас драйвит изящество и скорость алгоритмов, красивые подходы, решенные задачи.

Новых знаний вам! Новых свершений! С наступающим Новым 2025 годом!
🍾🎄🥂🔔☃️🎄🥳

BY Дата канальи — про «специалистов» в данных / ML / AI


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/datarascals/86

View MORE
Open in Telegram


DATARASCALS Telegram Group Telegram | DID YOU KNOW?

Date: |

Newly uncovered hack campaign in Telegram

The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.

How To Find Channels On Telegram?

There are multiple ways you can search for Telegram channels. One of the methods is really logical and you should all know it by now. We’re talking about using Telegram’s native search option. Make sure to download Telegram from the official website or update it to the latest version, using this link. Once you’ve installed Telegram, you can simply open the app and use the search bar. Tap on the magnifier icon and search for a channel that might interest you (e.g. Marvel comics). Even though this is the easiest method for searching Telegram channels, it isn’t the best one. This method is limited because it shows you only a couple of results per search.

DATARASCALS Telegram Group from ye


Telegram Дата канальи — про «специалистов» в данных / ML / AI
FROM USA